제어문
✒️ 2025-05-19 10:26 내용 수정
Do it! 점프 투 파이썬(2017년 발행) 내용을 정리
특정 조건을 만족했을 때 동작하도록 하거나 같은 동작을 반복하도록 만드는 것
- Java의 제어문(조건문, 루프(Loops))와 JavaScript의 제어문(제어문)도 참고.
- 제어문에서 사용할 조건식은 연산자를 자주 사용하며, True/False를 확인할 수 있는 비교 연산자(
>,<등), 논리 연산자(and,or,not),in,not in등의 연산자를 많이 사용한다.- 연산자 참고.
조건문
- 특정 조건을 만족했을 때 동작을 하도록 만든다.
1. if 문
- 조건식을 만족(True)하면 실행문이 작동한다.
- if 문 내의 실행문은 반드시 들여쓰기로 작성해야 한다.
if 조건문:
# 결과가 True일 때 실행
print("True")
>>> a = 5
>>> if a < 10:
... print("a < 10")
...
a < 10
2. if-else 문
- 조건식을 만족(True)하면 실행문이 작동하고, 만족하지 않으면(False)
else이후의 실행문이 작동한다.
if 조건문:
# 결과가 True일 때 실행
else:
# 결과가 False일 때 실행
>>> a = 5
>>> if a < 4:
... print("a < 4")
... else:
... print("a > 4")
...
a > 4
3. if-elif문
else if역할을 하며, 더욱 복잡한 조건과 그에 따른 실행문을 설정할 수 있다.
if 조건문:
# 결과가 True일 때 실행
elif 조건문:
# if 조건문은 False이고,
# elif 조건문은 True일 때 실행
else:
# 두 조건문 결과가 모두 False일 때 실행
>>> a = ["apple", "banana", "kiwi", "pear"]
>>> if "berries" in a:
... print("berries in a")
... elif "banana" in a:
... print("banana in a")
... else:
... print("no berries and bananas")
...
banana in a
4. 조건부 표현식
- 삼항 연산자(삼항 연산자)처럼 if문을 간결하게 한 줄로 표현할 수 있다.
조건문이_참일_때_실행문 if 조건문 else 조건문이_거짓일_때_실행문
>>> if "a" in "abc":
... print("abc")
... else:
... print("bc")
...
abc
# 조건부 표현식으로 변경
>>> print("abc") if "a" in "abc" else print("bc")
abc
반복문
- 특정 동작을 반복 수행하도록 한다.
1. while 문
- 조건문이 참인 동안 while문 내의 실행문을 반복 수행한다.
while 조건문:
# 실행문
>>> a = 0
>>> while (a <= 10):
... a += 1
... print(f"{a}'s loop")
...
1's loop
2's loop
3's loop
4's loop
5's loop
6's loop
7's loop
8's loop
9's loop
10's loop
11's loop
2. for 문
- 리스트/튜플/문자열/
range()등과 같은 순회 가능한 객체에 대해 반복 실행을 수행할 때 사용한다.
for 순회변수 in 리스트/튜플/문자열:
# 실행문
>>> li = ['a', 'b', 'c']
>>> for i in li:
... print(i)
...
a
b
c
- for문과 자주 쓰이는
range()함수는 자동으로 숫자 리스트를 만든다.range(n)으로 작성하면 시작값이0이고 1씩 증가하며, 마지막이n-1인 숫자 리스트가 생성된다.range(start, stop, step)는 시작이start이고step간격으로stop보다 작은 숫자들로 이루어진 숫자 리스트가 생성된다.
>>> a = range(10)
>>> a
range(0, 10)
>>> for i in range(10):
... print(i)
...
0
1
2
3
4
5
6
7
8
9
- 순회하는 자료형에 변수를 자동으로 할당할 수 있다.
>>> a = [(1, 2), ("a", "b"), (True, False)]
>>> for (first, second) in a:
... print(f"{first} and {second}")
...
1 and 2
a and b
True and False
- 리스트 컴프리헨션(list comprehension)을 사용하여 리스트의 요소를 쉽게 추가할 수 있다.
>>> a = [1, 2, 3, 4, 5, 6]
>>> b = [i * 2 for i in a]
>>> b
[2, 4, 6, 8, 10, 12]
Java의 for문과의 차이점
- Java는 인덱스 기반에
for (초기화;조건;증감) {}형식을 사용하고,for-each로 리스트/배열 순회를 지원하는 형식이다.
// Java
for (int i = 0; i < 10; i++) {}
for (String str : String[] strArr) {}
- 이와 달리 Python은 이터레이터 기반으로
for x in iterator:형식을 사용하고, 증감은range(start, stop, step)으로 처리한다.
# Python
>>> for i in range(10):
# 실행문
>>> for i in range(1, 10, 1):
# 실행문
기타 제어문
1. pass 문
- 아무런 동작 없이 다음 구문으로 넘어가도록 설정할 때 사용한다.
- if, while, for, 함수 정의 등에서 사용 가능하다.
>>> alphabet = ['a', 'b', 'c']
>>> if 'a' in alphabet:
... pass
... else:
... print("test")
...
>>>
2. break 문
- 반복문(while, for)을 강제로 빠져나갈 때 사용한다.
>>> a = 0
>>> while a < 10:
... a += 1
... print(f"{a}'s loop")
... if a > 5:
... break
...
1's loop
2's loop
3's loop
4's loop
5's loop
6's loop
3. continue 문
- while 문과 for 문 안에서 맨 처음인 조건문으로 다시 돌아갈 때 사용한다.
>>> a = 0
>>> while a < 10:
... a += 1
... if a % 2 == 0: continue
... print(a)
...
1
3
5
7
9